package object_string_0920;

/**
 * 字符串内部是使用字符数组来存储内容的，字符串也是线性表的一种
 *3.字符串内容的查找：
 * （1）在字符串中查找指定的字符 char charAt(int index)
 *  (Character.isDigit(c)JDK包装类自带方法判断字符是数字)
 *  indexOf()从前往后  lastIndexOf()从后往前
 *  contains()是否包含某个字符串，大小写敏感
 */
public class StringFind {
    public static void main(String[] args) {
        String str="hello world";
        //注意越界问题
        char c=str.charAt(4);
        System.out.println(c);
//        System.out.println(str.charAt(20));//越界错误
        System.out.println(isDigit(str));

        //indexOf()四种用法
        //查找第一个出现'l'的位置
        System.out.println(str.indexOf('l'));
        System.out.println(str.indexOf("llo"));
        //从5索引开始查找第一个出现'l'的位置
        System.out.println(str.indexOf('l',5));
        System.out.println(str.indexOf("llo",5));//找不到返回-1

        System.out.println(str.contains("world"));
        System.out.println(str.contains("World"));
    }
    //判断字符串是否是纯数字,是返回true，否则返回false
    //"12345"数字型字符串
    public static boolean isDigit(String str){
        //1.边界条件，字符串为null，或者内容为空
        if(str==null||str.length()==0){
            return false;
        }
        //2.需要将字符串拆分为一个个的字符
        for (int i = 0; i < str.length(); i++) {
            char c=str.charAt(i);
//            if(c<'0'||c>'9'){
//                return false;
//            }
            //JDK包装类自带方法判断是否是数字
            if(!Character.isDigit(c)){
                return false;
            }
        }
        return true;
    }
}
